/*
 *编写一个程序，有序打印给定的两个有序数组（含有W个 i n t值）中的所有公共元素，程序在 最坏情况下所需的运行时间应该和W成正比。
 */

#include<iostream>
#include<vector>

using namespace std;

//找出所有公共元素
vector<int> find(const vector<int> &v1,const vector<int> &v2)
{
    vector<int> ans;
    for(int i=0,j=0;i!=v1.size()&&j!=v2.size();)
    {
        if(v1[i]==v2[j])
        {
            ans.push_back(v1[i]);
            ++i;
            ++j;
            continue;
        }
        if(v1[i]<v2[j])
        {
            ++i;
            continue;
        } 
        if(v1[i]>v2[j])
        {
            j++;
            continue;
        }                                                                                                                                                                                                                            
    }
    return ans;
}

int main()
{
    vector<int> v1={0,2,7,9,10};
    vector<int> v2={0,9};
    vector<int> ans=find(v1,v2);
    for(auto i:ans)
    {
        cout<<i<<" ";
    }
    return 0;
}